package businesslogicservice.chooseCourseblservice;

import java.util.ArrayList;

import dataservice.ResultMessage;
import vo.chooseCourseVO.ChooseCourseVO;
import vo.courseVO.CourseVO;
import vo.userVO.StudentVO;

public interface ChooseCourseBLService {
	
	/*
	 * 得到所有学生的选课记录
	 * */
	public ArrayList<ChooseCourseVO> getAllChooseCourseRecord() throws Exception;
	
	/*
	 * 得到可以选修课的选课记录
	 * */
	public ArrayList<ChooseCourseVO> getDeleteChooseCourseRecord() throws Exception;
	
	/*
	 * 通过课程ID得到选择了这门课程的学生
	 * */
	public ArrayList<StudentVO> getStuList(String courseId)throws Exception;
	
	
	/*
	 * 通过课程VO和学生VO，选择一门课程
	 * */
	public ResultMessage chooseCourse(ArrayList<CourseVO> courseVOs,StudentVO vo2)throws Exception;

	/*
	 * 退选一门课程 
	 * */
	public ResultMessage deleteAChooseCourse(ChooseCourseVO vo)throws Exception;

	/*
	 * 给一项选课记录登记成绩
	 * */
	public ResultMessage setScore(ChooseCourseVO vo, double score)throws Exception;
	
	/*
	 * 得到一项选课记录的成绩
	 * */
	public double getScore(ChooseCourseVO vo)throws Exception;
	
	/*
	 * 得到一名学生所选择课程 的VO
	 * */
	public ArrayList<CourseVO> getMyCourse()throws Exception;
	
	/*
	 *得到一名学生选修课的VO
	 * */
	public ArrayList<CourseVO> getMyDeleteCourse() throws Exception;
	
	/*
	 * 获得一个学期所有选择的课程
	 * */
	public ArrayList<ChooseCourseVO> getChooseCourseByTerm(int term)throws Exception;
	
	/*
	 * 计算一个学生的GPA
	 * */
	public void CalculateGPA(String department)throws Exception;
	
	/*
	 * 得到所有学生的选课信息
	 * */
	public ArrayList<ChooseCourseVO> getAllStudentChoose() throws Exception;
	
	/*
	 * 进行学生选课请求的筛选
	 * */
	public ArrayList<ChooseCourseVO> sortChooseCourse() throws Exception;
	
	public ResultMessage chooseCourseDirect(ChooseCourseVO chooseCourseVO) throws Exception;
	
	public ArrayList<CourseVO> getMyTemp() throws Exception;
	
	
}
